/**
 * @file qp_bsp.h
 * @author your name (you@domain.com)
 * @brief
 * @version 0.1
 * @date 2024-07-27
 *
 * @copyright Copyright (c) 2024
 *
 */
#ifndef _QP_BSP_H
#define _QP_BSP_H

#include "qpc.h" // QP/C real-time embedded framework

#define BSP_TICKS_PER_SEC    configTICK_RATE_HZ

Q_NORETURN Q_onError(char const *const module, int_t const id);
void QF_onCleanup(void);
void QF_onStartup(void);

void BSP_displayPaused(uint8_t paused);
void BSP_displayPhilStat(uint8_t n, char const *stat);
void BSP_terminate(int16_t result);

void BSP_randomSeed(uint32_t seed); // random seed
uint32_t BSP_random(void);          // pseudo-random generator

void BSP_ledOn(void);
void BSP_ledOff(void);
void qpc_bsp_init(void);
#endif
